// samsting : this file is auto create.

#ifndef ALIYUN_Ess_DescribeScalingGroupsResponse_H_
#define ALIYUN_Ess_DescribeScalingGroupsResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ess {

class DescribeScalingGroupsResponse : public AcsResponse {
public:
  DescribeScalingGroupsResponse();

  class ScalingGroup {
    friend class DescribeScalingGroupsResponse;
  public:
    const std::vector<RemovalPolicy>& GetRemovalPolicies(void) const;
    const std::vector<DBInstanceId>& GetDBInstanceIds(void) const;
    int  GetDefaultCooldown(void) const;
    int  GetMaxSize(void) const;
    int  GetPendingCapacity(void) const;
    const string& GetLoadBalancerId(void) const;
    int  GetRemovingCapacity(void) const;
    const string& GetScalingGroupName(void) const;
    int  GetActiveCapacity(void) const;
    const string& GetActiveScalingConfigurationId(void) const;
    const string& GetScalingGroupId(void) const;
    const string& GetRegionId(void) const;
    int  GetTotalCapacity(void) const;
    int  GetMinSize(void) const;
    const string& GetLifecycleState(void) const;
    const string& GetCreationTime(void) const;
  private:
    std::vector<RemovalPolicy> RemovalPolicies_;
    std::vector<DBInstanceId> DBInstanceIds_;
    int    DefaultCooldown_;
    int    MaxSize_;
    int    PendingCapacity_;
    string LoadBalancerId_;
    int    RemovingCapacity_;
    string ScalingGroupName_;
    int    ActiveCapacity_;
    string ActiveScalingConfigurationId_;
    string ScalingGroupId_;
    string RegionId_;
    int    TotalCapacity_;
    int    MinSize_;
    string LifecycleState_;
    string CreationTime_;
  }; // ScalingGroup 

  const std::vector<ScalingGroup>& GetScalingGroups(void) const;
  int  GetTotalCount(void) const;
  int  GetPageNumber(void) const;
  int  GetPageSize(void) const;

private:
  std::vector<ScalingGroup> ScalingGroups_;
  int    TotalCount_;
  int    PageNumber_;
  int    PageSize_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ess {

#endif // #ifndef ALIYUN_Ess_DescribeScalingGroupsResponse_H_

// end of file 
